////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//   Software       :                                                         //
//   Layer          : SRC                                                     //
//   Package        :                                                         //
//   Component      :                                                         //
//                                                                            //
//   File           : MyGlobal.cxx                                            //
//   Author         : RSO ( Rafael Sotomayor Brûlé )                          //
//   EMail          : rsotomayor@savtec.cl                                    //
//   Type           : C++ Source                                              //
//   Usage          :                                                         //
//   Purpose        : Implementación de ATD y Funciones globales              //
//                                                                            //
//                                                                            //
//   who when        what                                                     //
//   ~~~ ~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//   RSO 09-10-2010  Creation                                                 //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <signal.h>

#include <glib.h>
#include <glib/gprintf.h>
#include <gtk/gtk.h>
#include <glade/glade.h>
#include "mylib/errlog.h"

#include "myglobal.h"
#include "formmain.h"
#include "formconfig.h"


extern MyGlobal   *global_g;
extern FormMain   *myFormMain_g;
extern FormConfig *myFormConfig_g;

GdkFont       *font_g;
const char    *dummy_g = NULL;
string        mystrdummy_g;
int           dummyint_g;
tPen          myPen_g ;

MyGlobal::MyGlobal() {
  windowActiva_a = WINDOW_MAIN ;
}

MyGlobal::~MyGlobal() {

}

void MyGlobal::myhandleSignal(int SignalNumber_p) {
  int counter ;

  switch (SignalNumber_p) {
    case SIGTERM:
    case SIGINT:
      errLog::LOGERR((errLog::SEVERE,(char *) "PROCESO TERMINA NORMALMENTE POR SIGNAL [%d] [%s]\n",SignalNumber_p,GetSignalName(SignalNumber_p)));
      global_g->isOn_a = 0 ;
      counter = 0 ;
      while ( counter++ < 3 ) {
        errLog::LOGERR((errLog::INFO,(char *) "WAITING TO QUIT  [%d] \n",counter));
        sleep(1);
      }
      break;
    case SIGSEGV:
    case SIGFPE:
      errLog::LOGERR((errLog::FATAL,(char *)"PROCESO TERMINA POR SIGNAL [%d] [%s]\n",SignalNumber_p,GetSignalName(SignalNumber_p)));
      counter = 0 ;
      while ( counter++ < 3 ) {
        errLog::LOGERR((errLog::INFO,(char *) "WAITING TO QUIT  [%d] \n",counter));
        sleep(1);
      }
      exit(EXIT_FAILURE);
    default:
      errLog::LOGERR((errLog::SEVERE,(char *)"PROCESO CAPTURA SIGNAL [%d] [%s]\n",SignalNumber_p,GetSignalName(SignalNumber_p)));
      break;
  }   
}

int MyGlobal::displayMensaje(int id_p,string mensaje_p) {

//  gdk_threads_enter();               
//  gtk_label_set_text (GTK_LABEL(myFormConfig_g->myWidget_a->labelenrollmensaje),mensaje_p.data()); 
//  gdk_threads_leave();

  return 0;
}

int MyGlobal::notificaFalla(int id_p,string iddevice_p) {
  myFormMain_g->setEstadoServicios();
  return 0;
}

